Modern computer systems allow for the interchange of data and resources through network environments. For example, a modern computer network may include a number of interconnected client computers. The computer network may further include resources. Such resources may be, for example and not limited to, file servers for storing data accessible by the clients, print servers for providing access to printers to the clients, and shared stores on client computers for storing data to be made available to other clients and resources on the network.
Networks vary in size. Smaller networks include Local Area Networks (LANs). Examples of LANs include home networks and small business networks where the network is at a single home or business site. Larger networks include Wide Area Networks (WANs). One common example of a WAN is the ubiquitous Internet. Another example includes a collection of LANs interconnected to create an enterprise network.
When LANs are interconnected to create an enterprise network, each of the LANs may be referred to as being included in a branch office. A branch office provides network data routing functions within the local branch office. An enterprise hub is used to interconnect the branch offices through WAN connections. The enterprise hub includes routing functionality for the enterprise. Typically, an enterprise network is arranged such that all of the clients and resources are within the same namespace. For example, the namespace may be microsoft.com. Host names for the clients and resources on the enterprise network may include for example, client1.microsoft.com, printserver1.microsoft.com, fileserver1.microsoft.com, bill.microsoft.com, tom.microsoft.com, etc.
While modern computer users have become accustom to using host names because they are easy to remember due to their alphanumeric characteristics, clients and resources on a network typically communicate using numerical IP addresses. Thus, a translation mechanism is used to correlate IP addresses with host names. In an enterprise network, a Domain Name System (DNS) server stores a correlation between host names and IP addresses for clients and resources in the enterprise. DNS servers are typically organized into networks such that a request to resolve a host name into an IP address may be handled by a number of DNS servers. Present implementations of DNS servers are divided into two types, authoritative and non-authoritative.
Authoritative DNS servers implement a model that includes primary and secondary servers. Both primary and secondary servers appear as authoritative to clients and resources. However, the secondary DNS servers are not truly authoritative. The secondary DNS servers copy records from their master server. Once the copy is received and loaded, the secondary DNS server treats the data as authoritative. The secondary DNS server responds to queries as if it were a primary server. Illustratively, in the authoritative DNS server model, a DNS server, which may be a secondary DNS server, hosts a zone and is fully authoritative for all data in the zone. If the DNS server receives a query for a host name in the zone, the DNS server will answer using records stored at the local zone. If the requested data is not present in the DNS server, the DNS server will respond with an error message. The authoritative DNS server model may use large amounts of network bandwidth when copying the records from the primary DNS server to secondary DNS servers. Additionally, between copy operations, the local zone may not have access to all valid records if records are updated in the primary DNS server and have not yet been copied to the secondary DNS server.
The non-authoritative model is sometimes referred to as a stub/forwarder model. In this model, a stub/forwarder DNS server handling a zone is fully non-authoritative for all data in the zone. If a stub/forwarder DNS server receives a query for a host name in the zone, the stub/forwarder DNS server will send the query to a master DNS server for resolution. The answer may be cached at the stub/forwarder DNS server, but ultimately, the master DNS server retains authority for all names and records. If a connection between the stub/forwarder DNS server and the master server is non-operational, a stub/forwarder DNS server may not be able to resolve host names, even for hosts (clients and resources) local to the stub/forwarder DNS server. This problem may be exacerbated by reboot and other operations that clear any cached records.
While various issues have been identified in this background, the subject matter claimed below does not necessarily address any or all of the identified issues. This background serves simply to provide background on one exemplary environment where the embodiments described herein may be practiced.